﻿using ComposantReferentielV2;
using GeneralServices.Data;
using GeneralServices.ViewModel;
using GenericWin;
using Models;
using Models.Utilisateur;
using System;
using System.Collections.Generic;
using System.Windows.Controls;

namespace ReprisePV.ViewModels
{
    public class GestionUtilisateur_VM : ViewModelBase, IComposantModification
    {
        #region IComposantModification Membres

        public void AfterCreate(ref GeneralServices.Model.IDTO o)
        {
            DTOUtilisateur user = o as DTOUtilisateur;
            if(user != null)
            {
                user.DATE_HEURE_CREATION = DateTime.Now;
                user.DATE_HEURE_MODIF = DateTime.Now;
                //user.RESP_MISE_A_JOUR = GenericMainController.CurrentUser.LOGIN;
                user.RESP_MISE_A_JOUR = "test";
            }

        }

        public object BeforeUpdate(GeneralServices.Model.IDTO o)
        {
            DTOUtilisateur user = o as DTOUtilisateur;
            if (user != null)
            {
                user.DATE_HEURE_MODIF = DateTime.Now;
                //user.RESP_MISE_A_JOUR = GenericMainController.CurrentUser.LOGIN;
                user.RESP_MISE_A_JOUR = "test";
            }
            return user;
        }

        public void CloseReferentielComposant(ReferentielControl control)
        {
            UserControl userControl = FindParentControl.FindParent<UserControl>(control);
            OnActionVMClosed(new ActionVMArgs(userControl, ""));
        }

        public ComposantRefentielV2.BLL.IBLLReferentiel GetBLLReferentiel()
        {
            return new BLLUtilisateur(
                new BaseRepositoryUtilisateur<PV_UTILISATEUR>(new FactoryDTOUtilisateur(), 
                StoreApplicationDbContext.Get("ContextPV") as EntitiesReprisePV));
        }

        public ParamExportCSV GetParam()
        {
            return new ParamExportCSV
            {
                Separateur = ";",
                Path = "C:\\Users\\legouellecs\\Desktop\\test.csv",
                Header = new ReadAndWrite.HeaderCSV
                {
                    Headers = new List<string> { "CODE_UTILISATEUR", "TOP_ADMIN", "RESPONSABLE" }
                }
            };
        }

        #endregion
    }
}
